Alteryxウィークリーチャレンジ#8中級やってみた!
アルテリックス?アルタリクス?どちらでもわたしは一向にかまわんッッ!の國崎です。
Alteryxウィークリーチャレンジ#8をやってみたので、そちらの解説記事をご紹介します。
今回のチャレンジテーマは「#8: 三角、三角、三角.....」です。
今回のチャレンジでやること
お題
このチャレンジはアイデアとしては単純ですが、実行するには少し手こずるかもしれません。
座標のセットが用意されています。この課題では、三角形の空間オブジェクトを作成して、あなたのAlteryx 空間ツールに関する知識を試すことができます。
各三角空間オブジェクトは、厳密に3つの非共線点(non-collinear point) を持たなければなりません。
このデータセットを使用して、516個のユニークな三角形を作成しましょう。
用意されたデータ
ゴール
とりあえず与えられたデータから516個の三角形を作ればいいと解釈しました。
レッツチャレンジ!
フォーミュラで1つめの座標を作成する
今回三角形に必要な座標をフォーミュラで以下の式を書いて作成します。
ST_CreatePoint([Longitude],[Latitude])
注意点としては空間関数を使う際は、データ型をSpatialObjにしないといけません。
上記の流れで1つ作成したら、複製して残り2つを作成します。
レコードIDで番号を割り当てる
さて、ここからちょいと分けて作業をしていきます。
フィールド付加で2つめの座標を作る
フィールド付加を使い、3つのうち2つのデータを組み合わせて2つめの座標を作成します。
ここで各カラム名の重複を回避するため、名前も変更します。
フィルターで座標の重複を削除
フィルターに接続し重複してる座標を削除します。
ここでレコードIDが役立ってきますねん。
再度フィールド付加で3つめの座標を作る
「フィルターで書き出したデータ」と「放置していた3つめのデータ」をフィールド付加で組み合わせて3つめの座標を作ります。
ここでもカラム名の重複を回避するため、組み合わせる3つめのデータのカラム名を変更します。
フィルターで再び座標の重複を削除
フォーミュラで三角形を作成
フォーミュラに以下式を入れて3つの座標から三角形を作成します。
ST_ConvexHull([point1],[point2],[point3])
実行すると「triangle」という三角形データが入ったカラムが追加されました。
空間情報で面積を見てみる
ここから516までどう削るのかわからなかったのですが、模範解答を見ると0.1平方マイルより大きい三角形が516になるとのことだったので、同じ処理をしてみます。
空間情報を接続し、三角形の面積を平方マイルで出します。
フィルターで小さい三角形を削る
カスタムフィルターで0.1平方マイル未満の三角形をフィルタリングします。
あとは余計なカラムをセレクトで排除し最終的には以下のワークフローになりました。
まとめ
こんな感じでAlteryx#8をやってみました。 0.1平方マイル未満を排除する根拠がわからなかったけど、解答を見てもよくわからないので、その辺は気にしないようにします。
本日はこの辺で。